package vwg.na.vwm.rh.rhmotor.modelo.daoimpl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import vwg.na.vwm.rh.rhmotor.modelo.dao.ActividadAccionDAO;
import vwg.na.vwm.rh.rhmotor.modelo.dao.GenericDAO;
import vwg.na.vwm.rh.rhmotor.modelo.entidad.Actividad;
import vwg.na.vwm.rh.rhmotor.modelo.entidad.ActividadAccion;

@Repository
public class ActividadAccionDAOImpl extends GenericDAO<ActividadAccion>
		implements ActividadAccionDAO {

	@SuppressWarnings("unchecked")
	@Override
	@Transactional(readOnly = true, propagation = Propagation.REQUIRED)
	public List<ActividadAccion> getByActividad(Actividad actividad) {
		List<ActividadAccion> accionesActividades = getHibernateTemplate().find(
				"FROM ActividadAccion as a"
						+ " LEFT JOIN FETCH a.actividad as act"
						+ " LEFT JOIN FETCH a.acciones as acc"
						+ " WHERE a.actividad = ?", actividad);
		return accionesActividades.size() > 0 ? accionesActividades : null;
	}
}
